package com.shxzz.easy12306.services.pay.dto.ali;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.shxzz.easy12306.services.pay.common.enums.PayChannelEnum;
import com.shxzz.easy12306.services.pay.dto.base.AbstractPayCallbackRequest;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 阿里支付回调请求
 * @author shxzz
 * @create 2024-03-11-21:49
 */
@Data
public class AliPayCallbackRequest extends AbstractPayCallbackRequest {
    /**
     * 支付渠道
     */
    private String channel;

    /**
     * 支付状态
     */
    @JsonAlias("trade_status")
    private String tradeStatus;

    /**
     * 支付凭证号
     */
    @JsonAlias("trade_no")
    private String tradeNo;

    /**
     * 买家付款时间
     */
    @JsonAlias("gmt_payment")
    private Date gmtPayment;

    /**
     * 买家付款金额
     */
    @JsonAlias("buyer_pay_amount")
    private BigDecimal buyerPayAmount;

    /**
     * 商户订单号
     */
    @JsonAlias("out_trade_no")
    private String outTradeNo;

    /**
     * 订单总金额
     */
    private BigDecimal totalAmount;

    /**
     * 订单标题
     */
    private String subject;

    @Override
    public String buildMark() {
        return PayChannelEnum.ALI_PAY.getName();
    }
}
